 
import {ajax,defaultBefore,silentAfter} from "@/utils/ajax.js" 


export const fetchFriendCount = ({userName}={})=>{
	return ajax({
		url:'/userFriend/myCount',
		data:{
			userName
		}
	})
}

export const fetchFriends = ({pageNo=1,pageSize=999,userName}={})=>{
	return ajax({
		url:'/userFriend/userList',
		data:{
			userName,
			pageNo,
			pageSize
		}
	})
}


export const fetchFriendByUid = (uid)=>{
	return ajax({
		url:'/userFriend/byUserIdInfo',
		data:{
			toUserId:uid
		}
	})
}


export const removeFriend = (ids) =>{
	return ajax({
		url:'/userFriend/delete',
		data:{
			ids
		}
	})
}

export const applyFriend = ({uid,remark})=>{
	return ajax({
		url:'/userFriendApply/add',
		data:{
			friendUserId:uid,
			remark
		}
	})
}

export const handleApply = ({id,status,reason})=>{
	return ajax({
		url:'/userFriendApply/update',
		data:{
			id,
			status,
			reason
		}
	})
}

export const APPLY_STATE={
	pending:0, 
	agree:1, 
	refuse:2 
}

export const fetchApplyList = ({pageNo=1,pageSize=10,status})=>{
	return ajax({
		url:'/userFriendApply/applyList',
		data:{
			pageNo,
			pageSize,
			status
		}
	})
}

export const fetchApplyCount = (status)=>{
	return ajax({
		url:'/userFriendApply/applyCount',
		data:{
			status
		},
		defaultBefore,
		silentAfter
	})
}


export const checkFriend = (id) =>{
	return ajax({
		url:'/userFriend/isFriend',
		data:{
			id
		}
	})
}


export const modifyRemarks = ({id,remarks})=>{
	return ajax({
		url:'/userFriend/upRemarks',
		data:{
			friendId:id,
			remarks
		}
	})
}


export const fetchGroups = ({pageNo=1,pageSize=999}={}) =>{
	return ajax({
		url:'/userGroup/myList',
		data:{
			pageNo,
			pageSize
		}
	})
}

export const fetchGroupInfo = async (id) =>{
	const info = await ajax({
		url:'/userGroup/detail',
		data:{
			id
		}
	})
	return {
		...info,
		isAddFriend:info.isAddFriend=='1',
		isInvite:info.isInvite=='1',
		isInviteAuth:info.isInviteAuth=='1',
		isSilent:info.isSilent=='1',
		isDelete:info.isDelete=='1'
	}
}

export const fetchGroupMember=({id,name,pageNo=1,pageSize=10,vest})=>{
	return ajax({
		url:'/userGroupRel/member',
		data:{
			id,
			name,
			pageNo,
			pageSize,
			vest
		}
	})
}

export const createGroup=({name,userList})=>{
	return ajax({
		url:'/userGroup/create',
		data:{
			name,
			userList
		}
	})
}

export const inviteGroupMember = ({id,inviteUserId,userList})=>{
	return ajax({
		url:'/userGroup/addUser',
		data:{
			id,
			inviteUserId,
			userList
		}
	})
}

export const removeGroupMember = ({id,userList})=>{
	return ajax({
		url:'/userGroup/delUser',
		data:{
			id,
			userList
		}
	})
}

export const dismissGroup = (id) =>{
	return ajax({
		url:'/userGroup/remove',
		data:{
			id
		}
	})
}


export const quitGroup = (id) =>{
	return ajax({
		url:'/userGroup/quit',
		data:{
			id
		}
	})
}

export const editGroupBrief = ({id,brief})=>{
	return ajax({
		url:'/userGroup/upBrief',
		data:{
			id,
			brief
		}
	})
}


export const editGroupName = ({id,name})=>{
	return ajax({
		url:'/userGroup/upName',
		data:{
			id,
			name
		}
	})
}

export const editGroupInviteState = ({id,state=true})=>{
	return ajax({
		url:'/userGroup/setInvite',
		data:{
			id,
			state:state?'1':'0'
		}
	})
}


export const editGroupInviteAuditState = ({id,state=true})=>{
	return ajax({
		url:'/userGroup/setInviteAudit',
		data:{
			id,
			state:state?'1':'0'
		}
	})
}


export const editGroupAddFriendsState = ({id,state=true})=>{
	return ajax({
		url:'/userGroup/setAddFriend',
		data:{
			id,
			state:state?'1':'0'
		}
	})
}

export const editGroupSilentState = ({id,state=false})=>{
	return ajax({
		url:'/userGroup/setSilent',
		data:{
			id,
			state:state?'1':'0'
		}
	})
}

export const editGroupNotice = ({id,notice})=>{
	return ajax({
		url:'/userGroup/upNotice',
		data:{
			id,
			notice
		}
	})
}

export const fetchGroupMuteList = ({id,name='',pageNo=1,pageSize=10})=>{
	return ajax({
		url:'/userGroupRel/silentUserList',
		data:{
			id,
			name,
			pageNo,
			pageSize
		}
	})
}

export const setGroupMuteMember = ({id,state,userIds})=>{
	return ajax({
		url:'/userGroup/setUserSilent',
		data:{
			id,
			state,
			userIds
		}
	})
}

export const fetchGroupAdminList = (id)=>{
	return ajax({
		url:'/userGroup/adminList',
		data:{
			id
		}
	})
}

export const addGroupAdmin = ({id,userId})=>{
	return ajax({
		url:'/userGroupRel/setAdmin',
		data:{
			id,
			userId
		}
	})
}


export const removeGroupAdmin = ({id,userId})=>{
	return ajax({
		url:'/userGroupRel/cancelAdmin',
		data:{
			id,
			userId
		}
	})
}

export const getMyGroupAuth = (id)=>{
	return ajax({
		url:'/userGroupRel/myGroupAuth',
		data:{
			id
		}
	})
}

export const editGroupAvatar = ({id,avatar})=>{
	return ajax({
		url:'/userGroup/upAvatar',
		data:{
			groupId:id,
			img:avatar
		}
	})
}


export const fetchCanInviteFdList = ({ id, userName, pageNo = 1, pageSize = 10 }) => {
	return ajax({
		url: '/userFriend/applyGroupFdList',
		data: {
			id,
			userName,
			pageNo,
			pageSize
		}
	})
}